﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace TangoGames.Scene
{
    public interface ICharacter
    {
        ISceneManager SceneManager { get; set; }

        void MoveTo(Vector3 destination);
        void MoveTo(IPathMap pathmap, Point destination);

        bool Selected(Ray ray);
        void Play();
        void Stop();
        bool Playing { get; }
        int MovementPoints { get; set; }
        int CurrentMovementPoints { get; set; }
        int Health { get; }
        int AttackPower { get; }
        BoundingBox CollisionBox { get; }

        Point BoardPosition { get; set; }

        void UpdateBoardPosition(IPathMap pathMap);

        void CenterPositionBoardSquare(IPathMap pathMap);

        bool IsIdle { get;}

        bool IsDead { get; }

        void SelfRemove();

        bool InRangeOfAttack (IPathMap pathMap, ICharacter character);

        void Attack(IPathMap pathMap, ICharacter character);

        void TakenDamage(int damage);

        bool isVisible(ICharacter other);

    }

    public interface ICharacterControl
    {

        ISceneManager SceneManager { get; set; }

        ICharacter CurrentCaracter { get; set; }

    }
}
